using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//继承自这种 自动创建的单例模式基类 不需要我们手动创建或挂载脚本
/// <summary>
/// 单例模式基础父级
/// </summary>
/// <typeparam name="T">子集的名称</typeparam>
public class 单例_基础可挂载自动管理器<T> : MonoBehaviour where T : MonoBehaviour //T类型至少需要无参构造函数
{
    private static T 实例;
    public static T 获取实例
    {
        get
        {
            if (实例 == null)
            {
                GameObject obj = new GameObject();
                obj.name = typeof(T).ToString();
                //DontDestroyOnLoad(obj);
                实例 = obj.AddComponent<T>();

                GameObject 父级 = GameObject.Find("单例管理器");
                if (父级 != null)
                    obj.transform.parent = 父级.transform;
                else
                {
                    GameObject fj = new GameObject("单例管理器");
                    DontDestroyOnLoad(fj);
                    obj.transform.parent = fj.transform;
                }
            }
            return 实例;
        }
    }
}